<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018-11-26
 * Time: 16:28
 */

namespace app\common\model;


use think\Db;
use think\Model;

class Roofplacementm extends Model
{
    /**
     * 查询所有过期的数据
     */
    public static function selectExpireData()
    {
        return Db::name('roof_placement')
            ->where('rp_status', 1)
            ->where('rp_expire', '<', time())
            ->field('rp_id, rp_uid, rp_residual_times, rp_create_time')
            ->select();
    }

    /**
     * 清除过期置顶的数据，给用户同时推送清除的消息
     */
    public static function delRoofAndAddMessage($data)
    {
        Db::startTrans();
        try {
            Db::name('roof_placement')->where('rp_id', $data['rp_id'])->update(['rp_status' => 2, 'rp_update_time' => time()]);
            $title   = '置顶次数过期';
            $content = '您于'.date('Y-m-d', $data['rp_create_time']).'开通会员获得的置顶权限已过期，系统自动清除。本次清除 '.$data['rp_residual_times'].' 次置顶次数';
            Messagem::addUserMessage($data['rp_uid'], $title, $content, 4);
            Db::commit();
            return true;
        } catch (\Exception $e) {
            Db::rollback();
            return false;
        }
    }
    /**
     * 根据查询出来的会员id 在会员置顶次数表里面查询出剩余次数大于0的所有数据 没有数据的话返回该会员的ID
     */
    public static function getOverduedata($uid)
    {
        $id = Db::name('roof_placement')
            ->where('rp_uid', $uid)
            ->where('rp_status', 1)
            ->where('rp_expire', '<', time())
            ->value('rp_uid');
        if ($id) {
            return $id;
        }
        return false;
    }

    /**
     * 根据用户ID 查询该用户有没有置顶权限
     */
    public static function getUserRoof($uid)
    {
        return  Db::name('roof_placement')->where('rp_uid', $uid)
            ->where('rp_status', 1)->where('rp_residual_times', '>', 0)
            ->value('rp_id');
    }

}